<?php

//
//  Copyright (C) 2004-2006  Autodesk, Inc.
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of version 2.1 of the GNU Lesser
//  General Public License as published by the Free Software Foundation.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
//

require_once("config.php");
require_once("utils.php");
require_once(ROOT_DIR_CLASES.'/cCliente.php'); 
require_once(ROOT_DIR_CLASES.'/Movil.php');
require_once(ROOT_DIR_CLASES.'/HistoricoMovil.php');
require_once(ROOT_DIR_CLASES.'/posiMovilReduce.php');
require_once 'JSON.php';

class QueryHistorico
{
	private $args = null;
	

	function __construct($args)
	{
		$this->args = $args;
	}

    

	function Execute()
	{
		$result = array();
		$cuenta = $this->args['CUENTA'];
		$fechai = $this->args['diai'].'/'.$this->args['mesi'].'/'.$this->args['anoi']." ".$this->args['horaInicio'].":00";
        $fechaf = $this->args['diaf'].'/'.$this->args['mesf'].'/'.$this->args['anof']." ".$this->args['horaFin'].":00";
        $fechaMysqlI = $this->args['anoi'].'-'.$this->args['mesi'].'-'.$this->args['diai']." ".$this->args['horaInicio'].':00';
        $fechaMysqlF = $this->args['anof'].'-'.$this->args['mesf'].'-'.$this->args['diaf']." ".$this->args['horaFin'].':00';
        
        //--------------------------------------	
        $movil = new Movil();
        
        $datosIdentificacion = BykomCliente::Consulta_Datos_Identificacion_Avl($cuenta);
        
   		$movil->movil = $datosIdentificacion->campo('Movil',0);
   		$movil->descripcion = $datosIdentificacion->campo('Descripcion',0);
   		$movil->identificador = $datosIdentificacion->campo('Identificador',0);
   		$movil->marca = $datosIdentificacion->campo('Marca',0);
   		$movil->modelo = $datosIdentificacion->campo('Modelo',0);
   		$movil-> patente = $datosIdentificacion->campo('Patente',0);
        array_push($result, $movil);
   		//--------------------------------------
   		$historicoMovil = new HistoricoMovil();
   		$historicoMovil->nombreFiltro = "HISTORICO: " . $this->args['horaInicio']." ".$this->args['diai']."/".$this->args['mesi']."/".$this->args['anoi']." - ".$this->args['horaFin']." ".$this->args['diaf']."/".$this->args['mesf']."/".$this->args['anof'];
        $datosPosicionamiento = BykomCliente::Consulta_Historico_Avl($cuenta,$fechaMysqlI,$fechaMysqlF,0,0,0);
        $historicoMovil->registros = $datosPosicionamiento->cantidad();
        array_push($result, $historicoMovil);
        
        for($i = 0;  $i < $historicoMovil->registros ; $i++ ) {
        	$posiMovilReduce = new posiMovilReduce();
        	$posiMovilReduce->id = $datosPosicionamiento->campo('ORDER_ID',$i);
    		$posiMovilReduce->longitud = quitCero($datosPosicionamiento->campo('LONGITUD',$i));
        	$posiMovilReduce->latitud  = quitCero($datosPosicionamiento->campo('LATITUD',$i));
        	$posiMovilReduce->velocidad = $datosPosicionamiento->campo('VELOCIDAD',$i);
        	$posiMovilReduce->sentido = $datosPosicionamiento->campo('SENTIDO',$i);
        	$posiMovilReduce->sentidoPalabra = BykomCliente::Obtener_Palabra_Sentido($datosPosicionamiento->campo('SENTIDO',$i));
        	$posiMovilReduce->satelites = $datosPosicionamiento->campo('SATELITES',$i);
        	//$posiMovilReduce->direccion = $datosPosicionamiento->campo('APROXIMACION',$registro);
        	$posiMovilReduce->direccionAbrev = BykomCliente::Obtener_Direccion_Abreviada($datosPosicionamiento->campo('APROXIMACION',$i));
        	$posiMovilReduce->evento = $datosPosicionamiento->campo('EVENTO',$i);
        	$posiMovilReduce->validez = BykomCliente::Obtener_Palabra_Validez($datosPosicionamiento->campo('VALIDEZ',$i));
        	$posiMovilReduce->fechaMensaje = $datosPosicionamiento->campo('FECHA_MENSAJE', $i);
        	$posiMovilReduce->fechaRecibido = $datosPosicionamiento->campo('FECHA_RECIBIDO', $i);
        	$posiMovilReduce->statusZona = $datosPosicionamiento->campo('STATUS_ZONA', $i);
        	$posiMovilReduce->edadMensaje = $datosPosicionamiento->campo('EDAD_MENSAJE', $i);
        	
        	$posiMovilReduce->soloLogistica = $datosPosicionamiento->campo('SOLO_LOGISTICA2', $i);
        	if ($posiMovilReduce->soloLogistica == false) {
        		$alfaAuxNombre = BykomCliente::Obtener_Descripcion_Alfa($datosPosicionamiento->campo('CODIGOALFA',$i));
        		$posiMovilReduce->codigoAlfa = $alfaAuxNombre->campo('NOMBRE',0);
        	} else {
        		$posiMovilReduce->codigoAlfa = "";
        	}
        	
        	
            
			if ($posiMovilReduce->statusZona == 390) {
        		$posiMovilReduce->zonaProhibida = $datosPosicionamiento->campo('ZONA', $i);
        	}
        	array_push($result, $posiMovilReduce);
    	}
    	
        if ($historicoMovil->registros > 1) {
        	$datosEstadisticos = BykomCliente::Consulta_Historico_Avl($cuenta,$fechaMysqlI,$fechaMysqlF,0,1,1);
        	$historicoMovil->velocidadMaxima = substr($datosEstadisticos->campo('velocidadMax',0), 0, strpos($datosEstadisticos->campo('velocidadMax',0), '.')+4);;
        	$datosEstadisticos = BykomCliente::Consulta_Historico_Avl($cuenta,$fechaMysqlI,$fechaMysqlF,0,1,0);
			$historicoMovil->velocidadPromedio = substr($datosEstadisticos->campo('promedio',0), 0, strpos($datosEstadisticos->campo('promedio',0), '.')+4);        
        	$historicoMovil->distanciaRecorrida = BykomCliente::Consulta_Distancia_Total_Avl($datosPosicionamiento);
		}
		
		return $result;
	}
}
?>